/*
2021-8-10
https://www.acwing.com/problem/content/1254/
*/
#include<cstring>
#include<iostream>
#include<algorithm>

using namespace std;
const int N=10010;

int v[N],w[N];
int p[N],f[N];
int n,m,vol;

void init()
{
    for(int i=1;i<=n;i++) p[i]=i;
}

int find(int x)
{
    if(x!=p[x]) p[x]=find(p[x]);
    return p[x];
}

int main()
{
    cin>>n>>m>>vol;
    init();
    
    for(int i=1;i<=n;i++) cin>>v[i]>>w[i];
    
    while(m--)
    {
        int a,b;
        cin>>a>>b;
        int pa=find(a),pb=find(b);
        
        if(pa!=pb)
        {
            v[pb]+=v[pa];
            w[pb]+=w[pa];
            p[pa]=pb;
        }
        
    }
    
    for(int i=1;i<=n;i++)
        if(p[i]==i)
            for(int j=vol;j>=v[i];j--)
                f[j]=max(f[j],f[j-v[i]]+w[i]);
    
    cout<<f[vol]<<endl;
    
    return 0;
}
